package com.ruoyi.service.project.model;

import com.ruoyi.common.core.enums.YesNoEnum;
import com.ruoyi.common.core.utils.StringUtils;
import java.math.BigDecimal;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 作用：岗位信息
 * </p>
 *
 * @author Zane
 * @since 2025-10-14 7:02
 */
@Getter
@Setter
@Accessors(chain = true)
public class PostInfo {

  /**
   * 是否招人，0为否，1为是
   */
  private Integer isHiring;
  /**
   * 岗位
   */
  private String postCode;
  /**
   * 岗位
   */
  private String postName;
  /**
   * 级别编码
   */
  private String levelCode;
  /**
   * 级别
   */
  private String level;
  /**
   * 人数
   */
  private Integer number;
  /**
   * 人天
   */
  private Integer personDay;
  /**
   * 薪资/天
   */
  private BigDecimal salaryByDay;
  /**
   * 薪资总额
   */
  private BigDecimal salaryTotal;
  /**
   * 人数
   */
  private Integer hiredNumber;
  /**
   * 人天
   */
  private Integer hiredPersonDay;

  /**
   * 薪资总额
   */
  private BigDecimal hiredSalaryTotal;


  public String groupByPostAndLevel() {
    return StringUtils.format("{}-{}", postCode, levelCode);
  }

  public PostInfo updateHireStatus() {
    this.setIsHiring(YesNoEnum.getByValue(this.number > this.hiredNumber
        && this.personDay > this.hiredPersonDay).getCode());
    return this;
  }

  public String buildCompareKey() {
    return StringUtils.format("{}_{}", this.getPostCode(), this.getLevelCode());
  }
}
